MFC学习教程之(打开文件对话框、选择文件、显示路径)

您所在的位置:网站首页 js 打开文件选择对话框 MFC学习教程之(打开文件对话框、选择文件、显示路径)

MFC学习教程之(打开文件对话框、选择文件、显示路径)

2024-07-15 12:12| 来源: 网络整理| 查看: 265

本操作实现了在MFC中打开文件对话框,选择文件并显示文件的路径。

MFC使用文件对话框类CFileDialog封装了对文件对话框的操作。 下面列出几个CFileDialog类的成员函数,我们可以使用它们获得文件对话框中的各种选择。

GetFileExt():获得选定文件的后缀名。 GetFileName():获得选定文件的名称,包括后缀名。 GetFileTitle():获得选定文件的标题,即不包括后缀名。 GetFolderPath():获得选定文件的目录。 GetNextPathName():获得下一个选定的文件的路径全名。 GetPathName():获得选定文件的路径全名。 GetReadOnlyPref():获得是否“以只读方式打开”。 GetStartPosition():获得文件名列表中的第一个元素的位置。

1.创建一个基于对话框的MFC应用程序工程,名称设为“test”。

2.修改主对话框IDD_test_DIALOG的模板,删除自动生成的“TODO: Place dialog controls here.”静态文本框,添加两个编辑框,ID分别为IDC_OPEN_EDIT和IDC_SAVE_EDIT,再添加两个按钮,ID分别设为IDC_OPEN_BUTTON和IDC_SAVE_BUTTON,Caption分别设为“打开”和“保存”。按钮IDC_OPEN_BUTTON用于显示打开文件对话框,编辑框IDC_OPEN_EDIT显示在打开文件对话框中选择的文件路径。按钮IDC_SAVE_BUTTON用于显示保存文件对话框,编辑框IDC_SAVE_EDIT显示在保存文件对话框中选择的文件路径。

3.分别为按钮IDC_OPEN_BUTTON和IDC_SAVE_BUTTON添加点击消息的消息处理函数CtestDlg::OnBnClickedOpenButton()和CtestDlg::OnBnClickedSaveButton()。

4.修改两个消息处理函数如下:

void CtestDlg::OnBnClickedOpenButton() { // TODO: Add your control notification handler code here // 设置过滤器 TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||"); // 构造打开文件对话框 CFileDialog fileDlg(TRUE, _T("txt"), NULL, 0, szFilter, this); CString strFilePath; // 显示打开文件对话框 if (IDOK == fileDlg.DoModal()) { // 如果点击了文件对话框上的“打开”按钮,则将选择的文件路径显示到编辑框里 strFilePath = fileDlg.GetPathName(); SetDlgItemText(IDC_OPEN_EDIT, strFilePath); } } void CtestDlg::OnBnClickedSaveButton() { // TODO: Add your control notification handler code here // 设置过滤器 TCHAR szFilter[] = _T("文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||"); // 构造保存文件对话框 CFileDialog fileDlg(FALSE, _T("doc"), _T("my"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, this); CString strFilePath; // 显示保存文件对话框 if (IDOK == fileDlg.DoModal()) { // 如果点击了文件对话框上的“保存”按钮,则将选择的文件路径显示到编辑框里 strFilePath = fileDlg.GetPathName(); SetDlgItemText(IDC_SAVE_EDIT, strFilePath); } }

结果如下所示: 在这里插入图片描述 tips:上述代码只是在编辑栏显示了,所选文件的路径,并没有对文件进行操作



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3